Hallo, ich habe zwar schon Erfahrung in VBA für Excel 2003 - aber eine Function habe ich noch nie benutzt. Um sich wiederholende Rechenschritte zu vereinfachen möchte ich eine Function verwenden.
Folgendes Beispiel soll exemplarisch zu meinem Verständnis dienen:
An die Function soll folgendes übergeben werden: 2 Datenfelder x(n), y(n) und die Variable n.
Dann werden die Produkte x(i)*y(i) gebildet und anschließend aufsummiert und dann dem Functionnamen "zui" übergeben. Der Wert der Function zui soll der Variable "erg" im Hauptprogramm übergeben werden. Leider bekomme ich es nicht zum Laufen - vorher habe ich noch nie eine Function verwendet. Muß ich i in der Function deklarieren?
Option Base 1
Sub test()
Dim i, n, erg, x(), y() As Integer
'Anzahl der Wertepaare
n = UsedRange.Rows.Count
'wegen Spaltenüberschriften
n = n - 1
Redim x(n), y(n) as Integer
'Startzelle
m = 2
'einlesen
For i = 1 To n
x(i) = Cells(m + i - 1, 3)
y(i) = Cells(m + i - 1, 4)
Next
'Functionaufruf
erg=Function zui(x(n), y(n),n) as Integer
MsgBox(erg)
End Sub
Function zui(ByVal a(n), b(n) )As Integer
Dim i As Integer
For i = 1 To n
prodsum(i) = a(i) * b(i)
Next
For i = 1 To n - 1
prodsum(i + 1) = prodsum(i + 1) + prodsum(i)
Next
i = i - 1
zui = prodsum(i + 1)
End Function
Über Hilfe würde ich mich sehr freuen.
Viele Grüße, Jörg
|